package com.zm.blog.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

/**
 * @Author: Sister Xiao Ming
 * @Description: FamilyVO 类是一个用于展示情侣/家庭关系信息的视图对象，包含了关系展示所需的各项属性和状态信息
 */
@Data
public class FamilyVO {

    /**
     * 基本信息
     */
    private Integer id;           // 家族ID
    private Integer userId;       // 关联用户ID
    private Boolean status;       // 启用状态（0:否，1:是）

    /**
     * 形象展示信息
     */
    @NotBlank private String bgCover;    // 背景封面（必填）
    @NotBlank private String manCover;   // 男生头像（必填）
    @NotBlank private String womanCover; // 女生头像（必填）
    @NotBlank private String manName;    // 男生昵称（必填）
    @NotBlank private String womanName; // 女生昵称（必填）

    /**
     * 时间相关属性
     */
    @NotBlank private String timing;      // 计时信息（如"相恋XX天"）
    private String countdownTitle;        // 倒计时标题
    private String countdownTime;         // 倒计时目标时间

    /**
     * 其他信息
     */
    private String familyInfo;    // 额外信息（自定义内容）
    private Integer likeCount;    // 点赞数

    /**
     * 时间戳
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;  // 创建时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;  // 更新时间

}
